﻿using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using _1.Presentacion.Utilidades;
using _2.Logica.Miembro;
using _4.Modelado.Miembros;
using _1.Presentacion.Principal;

namespace _1.Presentacion.Modulo_Miembros
{
    public partial class Gestionar_Consolidado : Päntalla_Base
    {
        public Gestionar_Consolidado()
        {
            InitializeComponent();
        }

        #region Cargar datos
        
        public void CargaGridConsolidacion()
        {
            try
            {
                var logica = new ConsolidadoL();

                List<Consolidado> listaMiembros = logica.ConsultarConsolidacion();
                dgvConsolidados.Rows.Clear();
                for (int i = 0; i < listaMiembros.Count; i++)
                {

                    dgvConsolidados.Rows.Add();
                    dgvConsolidados.Rows[i].Cells[0].Value = listaMiembros[i].iPK_Consolidado;
                    dgvConsolidados.Rows[i].Cells[1].Value = listaMiembros[i].sConsNombre;
                    dgvConsolidados.Rows[i].Cells[2].Value = listaMiembros[i].sConsPrimerApellido;
                    dgvConsolidados.Rows[i].Cells[3].Value = listaMiembros[i].sConsSegundoApellido;
                    dgvConsolidados.Rows[i].Cells[4].Value = listaMiembros[i].sConsNombreCompleto;
                    dgvConsolidados.Rows[i].Cells[5].Value = listaMiembros[i].dConsNacimiento;
                    dgvConsolidados.Rows[i].Cells[6].Value = listaMiembros[i].sConsDireccion;
                    dgvConsolidados.Rows[i].Cells[7].Value = listaMiembros[i].sConsTelefono;
                    dgvConsolidados.Rows[i].Cells[8].Value = listaMiembros[i].sConsOcupacion;
                    dgvConsolidados.Rows[i].Cells[9].Value = listaMiembros[i].dConsFecha;
                    dgvConsolidados.Rows[i].Cells[10].Value = listaMiembros[i].bConsRecibioJesus;
                    dgvConsolidados.Rows[i].Cells[11].Value = listaMiembros[i].bConsReconcilacion;
                    dgvConsolidados.Rows[i].Cells[12].Value = listaMiembros[i].bConsVisita;
                    dgvConsolidados.Rows[i].Cells[13].Value = listaMiembros[i].bConsIglesiaEvangelica;
                    dgvConsolidados.Rows[i].Cells[14].Value = listaMiembros[i].sConsSeguimiento;
                    dgvConsolidados.Rows[i].Cells[15].Value = listaMiembros[i].sConsCorreo;
                }

            }
            catch (Exception exc)
            {

                MessageBox.Show("Eror al cargar la lista de consolidados " + exc, "Error", MessageBoxButtons.OK, MessageBoxIcon.Error);
            }
        }

        public void CargaGridMiembrosBusqueda(Consolidado obj)
        {
            try
            {
                var logica = new ConsolidadoL();

                List<Consolidado> listaMiembros = logica.ConsultarConsolidado(obj);
                dgvConsolidados.Rows.Clear();
                for (int i = 0; i < listaMiembros.Count; i++)
                {

                    dgvConsolidados.Rows.Add();
                    dgvConsolidados.Rows[i].Cells[0].Value = listaMiembros[i].iPK_Consolidado;
                    dgvConsolidados.Rows[i].Cells[1].Value = listaMiembros[i].sConsNombre;
                    dgvConsolidados.Rows[i].Cells[2].Value = listaMiembros[i].sConsPrimerApellido;
                    dgvConsolidados.Rows[i].Cells[3].Value = listaMiembros[i].sConsSegundoApellido;
                    dgvConsolidados.Rows[i].Cells[4].Value = listaMiembros[i].sConsNombreCompleto;
                    dgvConsolidados.Rows[i].Cells[5].Value = listaMiembros[i].dConsNacimiento;
                    dgvConsolidados.Rows[i].Cells[6].Value = listaMiembros[i].sConsDireccion;
                    dgvConsolidados.Rows[i].Cells[7].Value = listaMiembros[i].sConsTelefono;
                    dgvConsolidados.Rows[i].Cells[8].Value = listaMiembros[i].sConsOcupacion;
                    dgvConsolidados.Rows[i].Cells[9].Value = listaMiembros[i].dConsFecha;
                    dgvConsolidados.Rows[i].Cells[10].Value = listaMiembros[i].bConsRecibioJesus;
                    dgvConsolidados.Rows[i].Cells[11].Value = listaMiembros[i].bConsReconcilacion;
                    dgvConsolidados.Rows[i].Cells[12].Value = listaMiembros[i].bConsVisita;
                    dgvConsolidados.Rows[i].Cells[13].Value = listaMiembros[i].bConsIglesiaEvangelica;
                    dgvConsolidados.Rows[i].Cells[14].Value = listaMiembros[i].sConsSeguimiento;
                    dgvConsolidados.Rows[i].Cells[15].Value = listaMiembros[i].sConsCorreo;

                }
            }
            catch (Exception exc)
            {

                MessageBox.Show("Eror al cargar la lista de consolidados " + exc, "Error", MessageBoxButtons.OK, MessageBoxIcon.Error);
            }
        }



        #endregion

        private void P_Limpiar()
        {
            txtPKConsolidacion.Text = "0";
            txtConsNombre.Clear();
            txtConsPrimerApellido.Clear();
            txtConsSegundoApellido.Clear();
            dtpConsNacimiento.Value = DateTime.Now;
            txtConsCorreoIgnore.Clear();
            mskConsTelefonoIgnore.Clear();
            txtConsDireccion.Clear();
            txtConsOcupacion.Clear();
            dtpConsFechaIgnore.Value = DateTime.Now;
            txtConsSeguimientoIgnore.Clear();
            chbConsVisita.Checked = false;
            chbConsRecibioJesus.Checked = false;
            chbConsReconciliacion.Checked = false;
            chbIglesiaCristiana.Checked = false;
            txtBusquedaCodigoIgnore.Clear();
            txtBusquedaNombreIgnore.Clear();


            
        }
       
        private void P_Buscar()
        {
            var obj = new Consolidado();
            obj.sNombre = txtBusquedaNombreIgnore.Text;
            obj.iCodigo = Convert.ToInt32(txtBusquedaCodigoIgnore.Text);
            CargaGridMiembrosBusqueda(obj);
        }

        private void btnHom_Click(object sender, EventArgs e)
        {
            this.WindowState = FormWindowState.Minimized;
        }

        private void btnNuevaFamilia_Click(object sender, EventArgs e)
        {
            P_Limpiar();
        }

        private void btnModificarFamilia_Click(object sender, EventArgs e)
        {
            try
            {

                int cantErrores = 0;

                Validaciones.Validar(this, errorProvider1, ref cantErrores);

                if (cantErrores == 0)
                {
                    #region Guardar Consolidacion

                    var obj = new Consolidado();
                    obj.iPK_Consolidado = Convert.ToInt32(txtPKConsolidacion.Text);
                    obj.sConsNombre = txtConsNombre.Text;
                    obj.sConsPrimerApellido = txtConsPrimerApellido.Text;
                    obj.sConsSegundoApellido = txtConsSegundoApellido.Text;
                    obj.dConsNacimiento = dtpConsNacimiento.Value;
                    obj.sConsDireccion = txtConsDireccion.Text;
                    obj.sConsTelefono = mskConsTelefonoIgnore.Text;
                    obj.sConsOcupacion = txtConsOcupacion.Text;
                    obj.bConsRecibioJesus = chbConsRecibioJesus.Checked;
                    obj.bConsReconcilacion = chbConsReconciliacion.Checked;
                    obj.bConsVisita = chbConsVisita.Checked;
                    obj.bConsIglesiaEvangelica = chbIglesiaCristiana.Checked;
                    obj.sConsSeguimiento = txtConsSeguimientoIgnore.Text;
                    obj.dConsFecha = dtpConsFechaIgnore.Value;
                    obj.sConsCorreo = txtConsCorreoIgnore.Text;


                    var logica = new ConsolidadoL();
                    logica.GuardarConsolidacion(obj);
                    MessageBox.Show("El registro ha sido guardado exitosamente", "Transacción", MessageBoxButtons.OK, MessageBoxIcon.Information);
                    CargaGridConsolidacion();
                    P_Limpiar();

                }
             

                    #endregion

            }
            catch (Exception)
            {

                MessageBox.Show("Se produjo un error al guardar los datos", "Error", MessageBoxButtons.OK, MessageBoxIcon.Error);
            }
        }

        private void btnEliminarFamilia_Click(object sender, EventArgs e)
        {
            try
            {
                if (dgvConsolidados.RowCount > 0)
                {
                    int indiceFila = dgvConsolidados.SelectedCells[0].RowIndex;
                


                    #region Elimina Consolidacion

                    DialogResult r = MessageBox.Show("Desea eliminar el registro: " + dgvConsolidados[3, indiceFila].Value.ToString(), "Validaciones",
                                                     MessageBoxButtons.OKCancel, MessageBoxIcon.Question);

                    if (r == DialogResult.OK)
                    {
                        var obj = new Consolidado();
                        obj.iPK_Consolidado = Convert.ToInt32(dgvConsolidados.Rows[indiceFila].Cells[0].Value);

                        var logica = new ConsolidadoL();
                        logica.EliminarConsolidacion(obj);
                        MessageBox.Show("El registro fue eliminado exitosamente", "Transacción", MessageBoxButtons.OK,
                                MessageBoxIcon.Information);
                        CargaGridConsolidacion();
                        P_Limpiar();
                        

                    }

                    #endregion
                }
            }
            catch (Exception exc)
            {

                MessageBox.Show("No se pudo eliminar el registro " + exc, "Error", MessageBoxButtons.OKCancel,MessageBoxIcon.Error);
            }
        }

        private void Gestionar_Consolidado_Load(object sender, EventArgs e)
        {
            CargaGridConsolidacion();
            P_Limpiar();
        }

        private void dgvConsolidados_CellDoubleClick(object sender, DataGridViewCellEventArgs e)
        {
            try
            {
                int indicefila = dgvConsolidados.SelectedCells[0].RowIndex;
                txtPKConsolidacion.Text = dgvConsolidados.Rows[indicefila].Cells[0].Value.ToString();
                txtConsNombre.Text = dgvConsolidados.Rows[indicefila].Cells[1].Value.ToString();
                txtConsPrimerApellido.Text = dgvConsolidados.Rows[indicefila].Cells[2].Value.ToString();
                txtConsSegundoApellido.Text = dgvConsolidados.Rows[indicefila].Cells[3].Value.ToString();
                dtpConsNacimiento.Text = dgvConsolidados.Rows[indicefila].Cells[5].Value.ToString();
                txtConsDireccion.Text = dgvConsolidados.Rows[indicefila].Cells[6].Value.ToString();
                mskConsTelefonoIgnore.Text = dgvConsolidados.Rows[indicefila].Cells[7].Value.ToString();
                txtConsOcupacion.Text = dgvConsolidados.Rows[indicefila].Cells[8].Value.ToString();
                dtpConsFechaIgnore.Text = dgvConsolidados.Rows[indicefila].Cells[9].Value.ToString();
                chbConsRecibioJesus.Checked = Convert.ToBoolean(dgvConsolidados.Rows[indicefila].Cells[10].Value.ToString());
                chbConsReconciliacion.Checked = Convert.ToBoolean(dgvConsolidados.Rows[indicefila].Cells[11].Value.ToString());
                chbConsVisita.Checked = Convert.ToBoolean(dgvConsolidados.Rows[indicefila].Cells[12].Value.ToString());
                chbIglesiaCristiana.Checked = Convert.ToBoolean(dgvConsolidados.Rows[indicefila].Cells[13].Value);
                txtConsSeguimientoIgnore.Text = dgvConsolidados.Rows[indicefila].Cells[14].Value.ToString();
                txtConsCorreoIgnore.Text = dgvConsolidados.Rows[indicefila].Cells[15].Value.ToString();
              
            }

            catch (Exception)
            {

                MessageBox.Show("Se produjo un error al cargar los datos", "Error", MessageBoxButtons.OK,
                                MessageBoxIcon.Error);
            }

        }


        #region Cambia Label de los Checkboxes segun su estado
       
        private void chbConsVisita_CheckedChanged(object sender, EventArgs e)
        {
            if (chbConsVisita.Checked)
                chbConsVisita.Text = "Sí";
            else
            {
                chbConsVisita.Text = "No";
            }

        }

        private void chbConsRecibioJesus_CheckedChanged(object sender, EventArgs e)
        {
            if (chbConsRecibioJesus.Checked)
                chbConsRecibioJesus.Text = "Sí";
            else
            {
                chbConsRecibioJesus.Text = "No";
            }
        }

        private void chbConsReconciliacion_CheckedChanged(object sender, EventArgs e)
        {
            if (chbConsReconciliacion.Checked)
                chbConsReconciliacion.Text = "Sí";
            else
            {
                chbConsReconciliacion.Text = "No";
            }

        }

        private void chbIglesiaCristiana_CheckedChanged(object sender, EventArgs e)
        {
            if (chbIglesiaCristiana.Checked)
                chbIglesiaCristiana.Text = "Sí";
            else
            {
                chbIglesiaCristiana.Text = "No";
            }
        }
        #endregion

        private void txtBusquedaCodigoIgnore_TextChanged(object sender, EventArgs e)
        {
         P_Buscar();
        }

        private void txtBusquedaCodigoIgnore_KeyPress(object sender, KeyPressEventArgs e)
        {
            //Permitimos solo números y  el símbolo .
            if (!char.IsDigit(e.KeyChar))
            {
                e.Handled = true;

            }
        }

        private void txtBusquedaNombreIgnore_TextChanged(object sender, EventArgs e)
        {
            txtBusquedaCodigoIgnore.Text = "0";
            P_Buscar();

        }
       

       
    
     

       
    }
}
